#ifndef _RETURN_HPP
#define _RETURN_HPP

namespace lua
{

class Module;
	
class Return
{
public:
	Return(int numReturnValues = 0);
	Return(const Return &args);
	void operator=(const Return&);

	inline int getNumReturnValues(){ return mNumReturnValues; }
	Module* getModule();
	void insert(int value);
	void insert(const char *value);
	void insert(bool value);
	void insert(void *userdata);
	const Return& operator<<(int value);
	const Return& operator<<(const char *value);
	const Return& operator<<(bool value);
	const Return& operator<<(void *userdata);
private:
	int mNumReturnValues;
	Module *mModule;
};

}

#define lua_return lua::Return()

#endif